<?php
/**
  * Clase para la gestión de las isas de las tareas
  *
  * @autor  Andres Hocevar <aahahocevar@gmail.com>
  * @package controllers
  */
class subcomproresol extends CI_Controller {
/**
 *  Título.
 */
	var $titp='Compromisos';
/**
 *  Dirección url de la clase.
 */
	var $url ='subcomproresol/';

	function index(){
		redirect($this->url.'filteredgrid');
	}

/**
  * CRUD para gestión de los informes ISA
  *
  *
  * @return void
  * @param int      $id_subcomp Clave primaria del subcompromiso al que pertenece
  * @param string   $status     Tipo de acción a ejecutar puede ser create,modify,show,delete.
  * @param int      $id         Clave primaria de registro en la tabla subcomproresol.
  */
	function dataeditmobil($id_subcomp){
		$this->load->library('rapyd');
		$ut= new rpd_auth_library();
		$rt=$ut->logged();
		if($rt===false) die('Acceso no permitido');
		$role = $ut->role();

		$edit = new dataedit_library();
		$edit->back_save  =true;
		$edit->back_cancel=true;
		$edit->back_cancel_save   = true;
		$edit->back_cancel_delete = true;

		//Saca el promedio de avance
		$sel=array('compromiso');
		$this->db->select($sel);
		$this->db->from('subcompromisos');
		$this->db->where('id',$id_subcomp);
		$query = $this->db->get();
		if ($query->num_rows() > 0){
			$row   = $query->row();
			$compromiso=$row->compromiso;
		}else{
			die('Compromiso invalido');
		}

		$edit->label = "Compromiso: ".$compromiso;
		$edit->back_url = site_url('dashboard/gcompalu');

		$edit->source('subcomproresol');
		$edit->pre_process(array('insert'), array($this, 'pre_insert'));
		$edit->pre_process(array('update'), array($this, 'pre_update'));
		$edit->pre_process(array('delete'), array($this, 'pre_false'));

		$edit->field('textarea','hiso'    ,'Que hizo?')->rule('trim|required');
		$edit->field('textarea','problema','Que problemas tuvo?')->rule('trim|required');;
		$edit->field('textarea','promete' ,'Que promete?')->rule('trim|required');
		$edit->field('hidden'  ,'id_subcompromiso','')->insert_value=$id_subcomp;

		$edit->buttons('modify','save','undo','back');

		$edit->build();

		//$msj='<p>Solo es permitido un registro de resultados por compromiso, asi que asegurese de colocar la informacion correcta.</p>';
		$data['content']    = $edit;
		$data['back_url']   = 'dashboard/gcompalu';
		$data['home_url']   = 'dashboard/gcompalu';
		$data['header']     = 'Resultado del final del compromiso';
		$data['title']      = 'Resultado del final del compromiso';
		$data['footer']     = '';
		$data['headerextra'] = ($role==1)? 'Profesor: ': (($role==2)? 'Alumno Gerente: ':'Alumno: ');
		$data['headerextra'].= $ut->user('name');

		$this->load->view('view_ven', $data);
	}

/**
  * Visor para los informes ISA
  *
  *
  * @return void
  * @param int      $id_subcomp Clave primaria del subcompromiso al que pertenece
  * @param string   $status     Tipo de acción a ejecutar debe ser show.
  * @param int      $id         Clave primaria de registro en la tabla subcomproresol.
  */
	function datashow($id_subcomp){
		$this->load->library('rapyd');
		$ut= new rpd_auth_library();
		$rt=$ut->logged();
		if($rt===false) die('Acceso no permitido');

		$edit = new dataedit_library();
		$edit->back_save  =true;
		$edit->back_cancel=true;
		$edit->back_cancel_save   = true;
		$edit->back_cancel_delete = true;

		//Saca el promedio de avance
		$sel=array('compromiso');
		$this->db->select($sel);
		$this->db->from('subcompromisos');
		$this->db->where('id',$id_subcomp);
		$query = $this->db->get();
		if ($query->num_rows() > 0){
			$row   = $query->row();
			$compromiso=$row->compromiso;
		}else{
			die('Compromiso invalido');
		}

		$edit->label = "Compromiso: ".$compromiso;
		$edit->back_url = site_url('dashboard/gcompalu');

		$edit->source('subcomproresol');
		$edit->pre_process(array('delete','update','insert'), array($this, 'pre_false'));
		$edit->field('textarea','hiso'    ,'<h3>¿Qué hizo?</h3>')->rule('trim|required')->mode='autohide';
		$edit->field('textarea','problema','<h3>¿Qué problemas tuvo?</h3>')->rule('trim|required')->mode='autohide';
		$edit->field('textarea','promete' ,'<h3>¿Qué promete?</h3>')->rule('trim|required')->mode='autohide';

		$edit->build();

		$data['content']  = $edit;
		$data['back_url'] = 'dashboard/gcompalu';
		$data['header']   = 'Resultado del final del compromiso';
		$data['title']    = 'Resultado del final del compromiso';
		$data['footer']   = '';

		$this->load->view('view_simple_ven', $data);
	}

/**
  * Pre-Proceso
  *
  * Evita acciones no permitidas en el CRUD
  *
  * @return boolean
  * @param object    $model  Modelo de la tabla subcomproresol.
  */
	function pre_false($model){
		$model->error_string='Acción no permitida';
		return false;
	}

	function pre_update($model){
		$id=$model->get('id_subcompromiso');

		$sel=array('b.fecha');
		$this->db->select($sel);
		$this->db->from('subcompromisos AS a');
		$this->db->join('compromisos AS b','a.id_compromisos=b.id');
		$this->db->where('a.id',$id);
		$query = $this->db->get();
		if ($query->num_rows() > 0){
			$row   = $query->row();
			$date_comp = date_create($row->fecha);
			$date_now  = new DateTime();
			$date_comp->add(new DateInterval('PT7H'));
			$hasta = $date_comp->format('d/m/Y h:i:s');
			if($date_now>=$date_comp){
				$model->error_string = '--El perído de registro ha caducado. ';
				return false;
			}
		}else{
			$model->error_string = 'Tarea inválido';
			return false;
		}
		return true;
	}

/**
  * Pre-Proceso antes de insertar
  *
  * Asigna el numero de reasignaciones en el informe ISA y valida que el
  * compromiso no este vencido
  *
  * @return boolean
  * @param object    $model  Modelo de la tabla subcomproresol.
  */
	function pre_insert($model){
		$id=$model->get('id_subcompromiso');

		$sel=array('b.fecha','b.reasignado');
		$this->db->select($sel);
		$this->db->from('subcompromisos AS a');
		$this->db->join('compromisos AS b','a.id_compromisos=b.id');
		$this->db->where('a.id',$id);
		$query = $this->db->get();
		if ($query->num_rows() > 0){
			$row   = $query->row();
			$date_comp = date_create($row->fecha);
			$date_comp->setTime(0, 0);
			$date_now  = new DateTime();
			$date_now->setTime(0, 0);
			$date_comp->add(new DateInterval('PT7H'));
			$hasta = $date_comp->format('d/m/Y h:i:s');
			if($date_now>$date_comp){
				$model->error_string = '--El perído de registro ha caducado, ya no puede registar el ISA.';
				return false;
			}
			$reasignado = $row->reasignado;
		}else{
			$model->error_string = 'Tarea inválido';
			return false;
		}

		$model->set('reasignacion', $reasignado);
		return true;
	}
}
